package com.eastfair.imaster.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.eastfair.boot.request.PageParams;
import com.eastfair.boot.service.SuperService;
import com.eastfair.core.base.R;
import com.eastfair.imaster.dto.SpeakerListDTO;
import com.eastfair.imaster.dto.SpeakerListDetailsPageQuery;
import com.eastfair.imaster.dto.SpeakerListPageQuery;
import com.eastfair.imaster.entity.SpeakerList;
import com.eastfair.imaster.entity.SpeakerListDetails;
import com.eastfair.imaster.vo.SpeakerListDetailsVO;
import com.eastfair.imaster.vo.SpeakerListVO;
import com.eastfair.imaster.vo.SpeakerVO;

import java.util.List;

/**
 * <p>
 * 业务接口
 * 嘉宾列表
 * </p>
 *
 * @author zjn
 * @date 2021-09-02
 */
public interface SpeakerListService extends SuperService<SpeakerList> {

    /**
     * 新增嘉宾列表
     *
     * @param speakerListDTO 嘉宾列表
     * @return 操作是否成功
     */
    R<Boolean> saveSpeakerList(SpeakerListDTO speakerListDTO);

    /**
     * 删除嘉宾列表
     *
     * @param id 嘉宾列表
     * @return 是否删除成功
     */
    R<Boolean> deleteById(Long id);

    /**
     * 修改嘉宾列表
     *
     * @param speakerListDTO
     * @return
     */
    R<Boolean> updateById(SpeakerListDTO speakerListDTO);

    /**
     * 通过id获取嘉宾列表详情
     *
     * @param id 嘉宾列表主键
     * @return 嘉宾列表详情
     */
    SpeakerListVO queryById(Long id);

    /**
     * 获取分页的 嘉宾列表 列表
     *
     * @param params 分页参数
     * @return 分页的 嘉宾列表 列表
     */
    Page<SpeakerListVO> queryPageList(PageParams<SpeakerListPageQuery> params);

    /**
     * 获取嘉宾列表
     *
     * @param speakerListDTO
     * @return
     */
    List<SpeakerListVO> queryList(SpeakerListDTO speakerListDTO);

}